home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 651-660 / 656 / jbspool / source / jbspoolgadgets.c < prev    next >
C/C++ Source or Header  |  1995-03-15  |  11KB  |  359 lines

  1. /*
  2.  *  Source generated with GadToolsBox V1.3
  3.  *  which is (c) Copyright 1991,92 Jaba Development
  4.  */
  5.  
  6. #include <exec/types.h>
  7. #include <intuition/intuition.h>
  8. #include <intuition/classes.h>
  9. #include <intuition/classusr.h>
  10. #include <intuition/imageclass.h>
  11. #include <intuition/gadgetclass.h>
  12. #include <libraries/gadtools.h>
  13. #include <graphics/displayinfo.h>
  14. #include <graphics/gfxbase.h>
  15. #include <clib/exec_protos.h>
  16. #include <clib/intuition_protos.h>
  17. #include <clib/gadtools_protos.h>
  18. #include <clib/graphics_protos.h>
  19. #include <string.h>
  20.  
  21. #include "JbSpoolGadgets.h"
  22.  
  23. struct Screen        *Scr = NULL;
  24. APTR                  VisualInfo = NULL;
  25. struct Window        *SpoolWnd = NULL;
  26. struct Gadget        *SpoolGList = NULL;
  27. struct Menu          *SpoolMenus = NULL;
  28. UWORD                 SpoolZoom[4];
  29. struct Gadget        *SpoolGadgets[17];
  30. UWORD                 SpoolLeft = 69;
  31. UWORD                 SpoolTop = 32;
  32. UWORD                 SpoolWidth = 472;
  33. UWORD                 SpoolHeight = 106;
  34. UBYTE                *SpoolWdt = NULL;
  35. extern struct GfxBase *GfxBase;
  36. struct TextAttr      *Font, Attr;
  37. UWORD                 FontX, FontY;
  38. UWORD                 OffX, OffY;
  39.  
  40. struct NewMenu SpoolNewMenu[] = {
  41.     NM_TITLE, (STRPTR)"Project", NULL, 0, 0L, NULL,
  42.     NM_ITEM, (STRPTR)"About...", (STRPTR)"?", 0, 0L, NULL,
  43.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  44.     NM_ITEM, (STRPTR)"Add...", (STRPTR)"A", 0, 0L, NULL,
  45.     NM_ITEM, (STRPTR)"Remove...", (STRPTR)"R", 0, 0L, NULL,
  46.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  47.     NM_ITEM, (STRPTR)"Hide", (STRPTR)"H", 0, 0L, NULL,
  48.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  49.     NM_ITEM, (STRPTR)"Quit", (STRPTR)"Q", 0, 0L, NULL,
  50.     NM_TITLE, (STRPTR)"Control", NULL, 0, 0L, NULL,
  51.     NM_ITEM, (STRPTR)"Up", (STRPTR)"U", 0, 0L, NULL,
  52.     NM_ITEM, (STRPTR)"Down", (STRPTR)"D", 0, 0L, NULL,
  53.     NM_ITEM, (STRPTR)"Top", (STRPTR)"T", 0, 0L, NULL,
  54.     NM_ITEM, (STRPTR)"Bottom", (STRPTR)"B", 0, 0L, NULL,
  55.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  56.     NM_ITEM, (STRPTR)"Stop", (STRPTR)"S", 0, 0L, NULL,
  57.     NM_ITEM, (STRPTR)"Continue", (STRPTR)"C", 0, 0L, NULL,
  58.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  59.     NM_ITEM, (STRPTR)"Abort", (STRPTR)"O", 0, 0L, NULL,
  60.     NM_END, NULL, NULL, 0, 0L, NULL };
  61.  
  62. static UWORD ComputeX( UWORD value )
  63. {
  64.     return(( UWORD )(( FontX * value ) / 8 ));
  65. }
  66.  
  67. static UWORD ComputeY( UWORD value )
  68. {
  69.     return(( UWORD )(( FontY * value ) / 8 ));
  70. }
  71.  
  72. static void ComputeFont( UWORD width, UWORD height )
  73. {
  74.     Font = &Attr;
  75.     Font->ta_Name = GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name;
  76.     Font->ta_YSize = FontY = GfxBase->DefaultFont->tf_YSize;
  77.     FontX = GfxBase->DefaultFont->tf_XSize;
  78.  
  79.     OffY = Scr->Font->ta_YSize + Scr->WBorTop + 1;
  80.     OffX = Scr->WBorLeft;
  81.  
  82.     if ( width && height ) {
  83.         if (( ComputeX( width ) + OffX + Scr->WBorRight ) > Scr->Width )
  84.             goto UseTopaz;
  85.         if (( ComputeY( height ) + OffY + Scr->WBorBottom ) > Scr->Height )
  86.             goto UseTopaz;
  87.     }
  88.     return;
  89.  
  90. UseTopaz:
  91.     Font->ta_Name = (STRPTR)"topaz.font";
  92.     FontX = FontY = Font->ta_YSize = 8;
  93. }
  94.  
  95. int SetupScreen( void )
  96. {
  97.     if ( ! ( Scr = LockPubScreen( NULL )))
  98.         return( 1L );
  99.  
  100.     ComputeFont( 0L, 0L );
  101.  
  102.     if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  103.         return( 2L );
  104.  
  105.     return( 0L );
  106. }
  107.  
  108. void CloseDownScreen( void )
  109. {
  110.     if ( VisualInfo ) {
  111.         FreeVisualInfo( VisualInfo );
  112.         VisualInfo = NULL;
  113.     }
  114.  
  115.     if ( Scr        ) {
  116.         UnlockPubScreen( NULL, Scr );
  117.         Scr = NULL;
  118.     }
  119. }
  120.  
  121. int OpenSpoolWindow( void )
  122. {
  123.     struct NewGadget     ng;
  124.     struct Gadget       *g;
  125.     UWORD               wleft = SpoolLeft, wtop = SpoolTop, ww, wh;
  126.  
  127.     ComputeFont( SpoolWidth, SpoolHeight );
  128.  
  129.     ww = ComputeX( SpoolWidth );
  130.     wh = ComputeY( SpoolHeight );
  131.  
  132.     if (( wleft + ww + OffX + Scr->WBorRight ) > Scr->Width ) wleft = Scr->Width - ww;
  133.     if (( wtop + wh + OffY + Scr->WBorBottom ) > Scr->Height ) wtop = Scr->Height - wh;
  134.  
  135.     if ( ! ( g = CreateContext( &SpoolGList )))
  136.         return( 1L );
  137.  
  138.     ng.ng_LeftEdge        =    OffX + ComputeX( 7 );
  139.     ng.ng_TopEdge         =    OffY + ComputeY( 4 );
  140.     ng.ng_Width           =    ComputeX( 178 );
  141.     ng.ng_Height          =    ComputeY( 64 );
  142.     ng.ng_GadgetText      =    NULL;
  143.     ng.ng_TextAttr        =    Font;
  144.     ng.ng_GadgetID        =    GD_QUEUE;
  145.     ng.ng_Flags           =    0;
  146.     ng.ng_VisualInfo      =    VisualInfo;
  147.  
  148.     g = CreateGadget( LISTVIEW_KIND, g, &ng, GTLV_Labels, NULL, GTLV_ShowSelected, NULL, TAG_DONE );
  149.  
  150.     SpoolGadgets[ 0 ] = g;
  151.  
  152.     ng.ng_LeftEdge        =    OffX + ComputeX( 286 );
  153.     ng.ng_Height          =    ComputeY( 13 );
  154.     ng.ng_GadgetText      =    (UBYTE *)"Printing :";
  155.     ng.ng_GadgetID        =    GD_CURRENT;
  156.     ng.ng_Flags           =    PLACETEXT_LEFT;
  157.  
  158.     g = CreateGadget( TEXT_KIND, g, &ng, GTTX_Border, TRUE, TAG_DONE );
  159.  
  160.     SpoolGadgets[ 1 ] = g;
  161.  
  162.     ng.ng_LeftEdge        =    OffX + ComputeX( 7 );
  163.     ng.ng_TopEdge         =    OffY + ComputeY( 71 );
  164.     ng.ng_Width           =    ComputeX( 85 );
  165.     ng.ng_Height          =    ComputeY( 14 );
  166.     ng.ng_GadgetText      =    (UBYTE *)"Add...";
  167.     ng.ng_GadgetID        =    GD_ADD;
  168.     ng.ng_Flags           =    PLACETEXT_IN;
  169.  
  170.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  171.  
  172.     SpoolGadgets[ 2 ] = g;
  173.  
  174.     ng.ng_LeftEdge        =    OffX + ComputeX( 100 );
  175.     ng.ng_GadgetText      =    (UBYTE *)"Remove...";
  176.     ng.ng_GadgetID        =    GD_REMOVE;
  177.     ng.ng_Flags           =    0;
  178.  
  179.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  180.  
  181.     SpoolGadgets[ 3 ] = g;
  182.  
  183.     ng.ng_LeftEdge        =    OffX + ComputeX( 286 );
  184.     ng.ng_GadgetText      =    (UBYTE *)"Down";
  185.     ng.ng_GadgetID        =    GD_DOWN;
  186.  
  187.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  188.  
  189.     SpoolGadgets[ 4 ] = g;
  190.  
  191.     ng.ng_LeftEdge        =    OffX + ComputeX( 7 );
  192.     ng.ng_TopEdge         =    OffY + ComputeY( 89 );
  193.     ng.ng_GadgetText      =    (UBYTE *)"Bottom";
  194.     ng.ng_GadgetID        =    GD_BOTTOM;
  195.  
  196.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  197.  
  198.     SpoolGadgets[ 5 ] = g;
  199.  
  200.     ng.ng_LeftEdge        =    OffX + ComputeX( 100 );
  201.     ng.ng_GadgetText      =    (UBYTE *)"Stop";
  202.     ng.ng_GadgetID        =    GD_STOP;
  203.  
  204.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  205.  
  206.     SpoolGadgets[ 6 ] = g;
  207.  
  208.     ng.ng_LeftEdge        =    OffX + ComputeX( 379 );
  209.     ng.ng_TopEdge         =    OffY + ComputeY( 71 );
  210.     ng.ng_GadgetText      =    (UBYTE *)"Top";
  211.     ng.ng_GadgetID        =    GD_TOP;
  212.  
  213.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  214.  
  215.     SpoolGadgets[ 7 ] = g;
  216.  
  217.     ng.ng_LeftEdge        =    OffX + ComputeX( 193 );
  218.     ng.ng_TopEdge         =    OffY + ComputeY( 89 );
  219.     ng.ng_GadgetText      =    (UBYTE *)"Continue";
  220.     ng.ng_GadgetID        =    GD_CONT;
  221.  
  222.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  223.  
  224.     SpoolGadgets[ 8 ] = g;
  225.  
  226.     ng.ng_LeftEdge        =    OffX + ComputeX( 286 );
  227.     ng.ng_GadgetText      =    (UBYTE *)"Hide";
  228.     ng.ng_GadgetID        =    GD_HIDE;
  229.  
  230.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  231.  
  232.     SpoolGadgets[ 9 ] = g;
  233.  
  234.     ng.ng_LeftEdge        =    OffX + ComputeX( 379 );
  235.     ng.ng_GadgetText      =    (UBYTE *)"Quit";
  236.     ng.ng_GadgetID        =    GD_QUIT;
  237.  
  238.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  239.  
  240.     SpoolGadgets[ 10 ] = g;
  241.  
  242.     ng.ng_LeftEdge        =    OffX + ComputeX( 193 );
  243.     ng.ng_TopEdge         =    OffY + ComputeY( 71 );
  244.     ng.ng_GadgetText      =    (UBYTE *)"Up";
  245.     ng.ng_GadgetID        =    GD_UP;
  246.  
  247.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  248.  
  249.     SpoolGadgets[ 11 ] = g;
  250.  
  251.     ng.ng_LeftEdge        =    OffX + ComputeX( 379 );
  252.     ng.ng_TopEdge         =    OffY + ComputeY( 20 );
  253.     ng.ng_GadgetText      =    (UBYTE *)"Abort";
  254.     ng.ng_GadgetID        =    GD_ABORT;
  255.  
  256.     g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );
  257.  
  258.     SpoolGadgets[ 12 ] = g;
  259.  
  260.     ng.ng_LeftEdge        =    OffX + ComputeX( 286 );
  261.     ng.ng_TopEdge         =    OffY + ComputeY( 21 );
  262.     ng.ng_GadgetText      =    (UBYTE *)"Insert FF :";
  263.     ng.ng_GadgetID        =    GD_FF;
  264.  
  265.     g = CreateGadget( CHECKBOX_KIND, g, &ng, TAG_DONE );
  266.  
  267.     SpoolGadgets[ 13 ] = g;
  268.  
  269.     ng.ng_TopEdge         =    OffY + ComputeY( 37 );
  270.     ng.ng_Width           =    ComputeX( 178 );
  271.     ng.ng_Height          =    ComputeY( 14 );
  272.     ng.ng_GadgetText      =    (UBYTE *)"Minutes :";
  273.     ng.ng_GadgetID        =    GD_MINS;
  274.     ng.ng_Flags           =    PLACETEXT_LEFT;
  275.  
  276.     g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, 0, GTIN_MaxChars, 3, TAG_DONE );
  277.  
  278.     SpoolGadgets[ 14 ] = g;
  279.  
  280.     ng.ng_TopEdge         =    OffY + ComputeY( 54 );
  281.     ng.ng_GadgetText      =    (UBYTE *)"Seconds :";
  282.     ng.ng_GadgetID        =    GD_SECS;
  283.     ng.ng_Flags           =    0;
  284.  
  285.     g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, 0, GTIN_MaxChars, 10, TAG_DONE );
  286.  
  287.     SpoolGadgets[ 15 ] = g;
  288.  
  289.     ng.ng_LeftEdge        =    OffX + ComputeX( 338 );
  290.     ng.ng_TopEdge         =    OffY + ComputeY( 20 );
  291.     ng.ng_Width           =    ComputeX( 33 );
  292.     ng.ng_GadgetText      =    (UBYTE *)"%";
  293.     ng.ng_GadgetID        =    GD_DONE;
  294.     ng.ng_Flags           =    PLACETEXT_LEFT;
  295.  
  296.     g = CreateGadget( NUMBER_KIND, g, &ng, GTNM_Border, TRUE, TAG_DONE );
  297.  
  298.     SpoolGadgets[ 16 ] = g;
  299.  
  300.     if ( ! g )
  301.         return( 2L );
  302.  
  303.     if ( ! ( SpoolMenus = CreateMenus( SpoolNewMenu, GTMN_FrontPen, 0L, TAG_DONE )))
  304.         return( 3L );
  305.  
  306.     LayoutMenus( SpoolMenus, VisualInfo, TAG_DONE );
  307.  
  308.     if ( SpoolWdt )
  309.         SpoolZoom[2] = TextLength( &Scr->RastPort, (UBYTE *)SpoolWdt, strlen((char *)SpoolWdt )) + 80;
  310.     else
  311.         SpoolZoom[2]  = 80L;
  312.         SpoolZoom[0] = SpoolZoom[1] = 0;
  313.         SpoolZoom[3] = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  314.  
  315.     if ( ! ( SpoolWnd = OpenWindowTags( NULL,
  316.                     WA_Left,          wleft,
  317.                     WA_Top,           wtop,
  318.                     WA_Width,         ww + OffX + Scr->WBorRight,
  319.                     WA_Height,        wh + OffY + Scr->WBorBottom,
  320.                     WA_IDCMP,         LISTVIEWIDCMP|TEXTIDCMP|BUTTONIDCMP|CHECKBOXIDCMP|INTEGERIDCMP|NUMBERIDCMP|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_CHANGEWINDOW|IDCMP_REFRESHWINDOW,
  321.                     WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
  322.                     WA_Gadgets,       SpoolGList,
  323.                     WA_Title,         SpoolWdt,
  324.                     WA_ScreenTitle,   "JbSpool, © Copyright 1992 Jaba Development",
  325.                     WA_PubScreen,     Scr,
  326.                     WA_Zoom,          SpoolZoom,
  327.                     TAG_DONE )))
  328.         return( 4L );
  329.  
  330.     SpoolZoom[0] = SpoolWnd->LeftEdge;
  331.     SpoolZoom[1] = SpoolWnd->TopEdge;
  332.     SpoolZoom[2] = SpoolWnd->Width;
  333.     SpoolZoom[3] = SpoolWnd->Height;
  334.  
  335.     SetMenuStrip( SpoolWnd, SpoolMenus );
  336.     GT_RefreshWindow( SpoolWnd, NULL );
  337.  
  338.     return( 0L );
  339. }
  340.  
  341. void CloseSpoolWindow( void )
  342. {
  343.     if ( SpoolMenus      ) {
  344.         ClearMenuStrip( SpoolWnd );
  345.         FreeMenus( SpoolMenus );
  346.         SpoolMenus = NULL;    }
  347.  
  348.     if ( SpoolWnd        ) {
  349.         CloseWindow( SpoolWnd );
  350.         SpoolWnd = NULL;
  351.     }
  352.  
  353.     if ( SpoolGList      ) {
  354.         FreeGadgets( SpoolGList );
  355.         SpoolGList = NULL;
  356.     }
  357. }
  358.  
  359.